package com.dianshang.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.dianshang.dao.MenuDao;
import com.dianshang.pojo.system.Menu;
import com.dianshang.service.system.MenuService;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class MenuServiceImpl implements MenuService {

    @Autowired
    private MenuDao menuDao;

    /**
     * 查询全部菜单
     */
    public List<Map> findMenu() {
        List<Menu> menus = menuDao.selectAll(); // 查询全部菜单列表
        return findMenuByParentId(menus,"0"); // 一级菜单列表
    }

    /**
     * 查询下级菜单ID
     */
    private List<Map> findMenuByParentId(List<Menu> menus, String parentId) {
        List<Map> list = new ArrayList<>();
        for (Menu menu : menus) { // 循环一级菜单
            if (menu.getParentId().equals(parentId)){
                HashMap hashMap = new HashMap();
                hashMap.put("path",menu.getId()); // 菜单ID
                hashMap.put("title",menu.getName()); // 菜单名称
                hashMap.put("icon",menu.getIcon()); // 图标
                hashMap.put("linkUrl",menu.getUrl()); // URL
                hashMap.put("children",findMenuByParentId(menus,menu.getId())); // 下级——比如：1级分类包含2级分类(前端页面2级分类循环：.children),2级分类包含3级分类(前端页面3级分类循环：.children)
                list.add(hashMap);
            }
        }
        return list;
    }

}